import httpInstant from '@/utils/http';



/**
* @description  根据分类id获得分页帖子
{ currentPage = 1, pageSize = 10 } 是通过解构赋值来提取对象中的 currentPage 和 pageSize 属性，同时提供了默认值。
= {} 让函数能够接受 undefined 或 null 作为参数，并且如果没有传入对象，它会默认为一个空对象 {}。这防止了在调用时没有传入任何参数时，出现错误。
* @param 
* @returns
*/
export function getCategoryPostListApi({
  currentPage = 1,
  pageSize = 10,
  categoryId,
  select
} = {}) {
  return httpInstant.get('/post/getCategoryPostList', {
    params: {
      currentPage,
      pageSize,
      categoryId,
      select
    }
  });
}


/**
 * @description  添加帖子
 * @param title 帖子标题
 * @param content 帖子内容
 * @param categoryId 分类id
 * @param userId 用户id
 * @returns
 */
export function addPostApi({
  title,
  content,
  categoryId,
  userId,
  imgList
}) {
  return httpInstant.post('/post/addPost', {
    title,
    content,
    categoryId,
    userId,
    imgList
  });
}


/**
 * @description 输入框输入时回显的帖子
 * @param queryString 输入框输入的内容
 * @returns
 */
export function getInputPostListApi(queryString) {
  return httpInstant.get('/post/getInputPostList', {
    params: {
      queryString
    }
  });
}




/**
* @description  根据关键字获得分页帖子
{ currentPage = 1, pageSize = 10 } 是通过解构赋值来提取对象中的 currentPage 和 pageSize 属性，同时提供了默认值。
= {} 让函数能够接受 undefined 或 null 作为参数，并且如果没有传入对象，它会默认为一个空对象 {}。这防止了在调用时没有传入任何参数时，出现错误。
* @param 
* @returns
*/
export function getSelectPostListApi({
  currentPage = 1,
  pageSize = 10,
  queryString
} = {}) {

  return httpInstant.get('/post/getSelectPostList', {
    params: {
      currentPage,
      pageSize,
      queryString
    }
  });
}



/**
 * @description  根据用户id获得分页帖子
 * @param currentPage 当前页数
 * @param pageSize 每页显示的数量
 * @param userId 自己的用户id
 * @param browseUserId 访问页的用户id
 * @returns
 */
export function getPostsListApi({
  currentPage = 1,
  pageSize = 10,
  userId,
  browseUserId
} = {}) {
  return httpInstant.get('/post/getPostsList', {
    params: {
      currentPage,
      pageSize,
      userId,
      browseUserId
    }
  });
}


/**
 * @description 删除自己的帖子
 * @param postId 帖子id
 * @returns
 */
export function deletePostApi({
  postId,
  userId
}) {

  return httpInstant.delete('/post/deletePost', {
    data: {
      postId,
      userId
    }
  });
}